std::literals::chrono_literals::operator""s
Определено в заголовке <chrono> | ||
|---|---|---|
constexpr std::chrono::seconds
operator""s( unsigned long long secs );
| (1) | (с C++14) |
constexpr std::chrono::duration</*unspecified*/>
operator""s( long double secs );
| (2) | (с C++14) |
Формирует литерал типа std::chrono::duration представляющий секунды.
std::chrono::seconds(secs).std::chrono::seconds.Параметры
| secs | - | количество секунд |
Возвращаемое значение
Литерал типа std::chrono::duration.
Возможная реализация
constexpr std::chrono::seconds operator""s(unsigned long long s)
{
return std::chrono::seconds(s);
}
constexpr std::chrono::duration<long double> operator""s(long double s)
{
return std::chrono::duration<long double>(s);
} |
Примечания
Этот оператор объявлен в пространстве имен std::literals::chrono_literals, где literals и chrono_literals являются встроенными именованными пространствами. Доступ к этому оператору можно получить с помощью:
-
using namespace std::literals, -
using namespace std::chrono_literals, или -
using namespace std::literals::chrono_literals.
Кроме того, внутри пространства имен std::chrono, директива using namespace literals::chrono_literals; предоставляется стандартной библиотекой, так что если программист использует using namespace std::chrono; для получения доступа к классам в библиотеке chrono, соответствующие операторы литералов также становятся видимыми.
std::string также определяет оператор""s для представления литеральных объектов типа std::string, но это строковая литерал: 10s — десять секунд, но "10"s — строка из двух символов.
Пример
#include <chrono>
#include <iostream>
int main()
{
using namespace std::chrono_literals;
std::chrono::seconds halfmin = 30s;
std::cout << "Half a minute is " << halfmin.count() << " seconds"
" (" << halfmin << ").\n"
"A minute and a second is " << (1min + 1s).count() << " seconds.\n";
std::chrono::duration moment = 0.1s;
std::cout << "A moment is " << moment.count() << " seconds"
" (" << moment << ").\n"
"And thrice as much is " << (moment + 0.2s).count() << " seconds.\n";
}Вывод:
Half a minute is 30 seconds (30s). A minute and a second is 61 seconds. A moment is 0.1 seconds (0.1s). And thrice as much is 0.3 seconds.
См. также
| создаёт новую продолжительность (публичный член-функция std::chrono::duration<Rep,Period>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/operator%22%22s